#pragma once

namespace FD
{
	namespace Primitive { struct Base; }

	struct Position
	{
							Position();
		Position*			prev;
		Position*			next;
		Primitive::Base*	elem;
	};

	struct List
	{
							List();
		Position			m_head;
		Position			m_tail;
	};

	inline Position::Position() : prev(0), next(0), elem(0)
	{	
	}

	inline List::List()
	{
		m_head.next = &m_tail;
		m_tail.prev = &m_head;
	}

}